A data processing system carries out its overall objective by executing a number of tasks called program processes. Every active program process makes some system resources unavailable to other program processes. In order to release such system resources and make them available for other uses, it is important that a program process be deactivated and its system resources released when there is no longer a need for that program process to remain active.
Some program processes are constructed so that they are automatically protected against remaining falsely active. For example, in the telephone switching system described in E. H. Hafer, U.S. Pat. No. 4,296,492, the activity of each communication path is monitored through the use of a path monitor signal. The need for continued activity of any active program process associated with a given communication path is determined by comparing the activity of the communication path with the process activity.
Program processes are also frequently prevented from remaining falsely active in a transient state through time-out mechanisms. If a predictable event, indicating that further data to be processed by the program process has been generated, does not occur within a specified timing interval, the process is deactivated and its associated resources released. For example, in a telephone system, if a program process, controlling the analysis of the digits of an incoming call received from a connected telephone office, fails to receive any such digits within a predetermined period of time, the program process times out and releases the digit receiver assigned to that call.
For program processes which have entered a stable state in which no predictable event will necessarily occur within some predetermined interval of time, it is more difficult to guard against a falsely active process. Under these circumstances, complex audit program processes can be used to check for the presence of falsely active program processes. The audit program processes examine each active program process to determine whether the task performed by that process is still required. When an active process is found which is intended to perform an unneeded task, that process is deactivated.
Such audit program processes perform a complex analysis of states of several program processes to determine whether a given process is legitimately active. The design of such audit program processes is a complex task, fraught with possibilities for error or oversight. Further, audit program processes consume system resources so that a balance must be struck between unavailability of system resources because of program processes that are falsely active and unavailability of system resources through the execution of audit program processes.
In view of the foregoing, a recognized problem in the art is that no efficient method exists of maintaining legitimately active program processes active, but automatically deactivating program processes that are needlessly keeping system resources unavailable.